home *** CD-ROM | disk | FTP | other *** search
/ Megahits 7 / Megahits 7 (1995)(GTI - Rhein-Main-Soft)(DE)[!].iso / franz / franz_051_100 / franz_051.dms / franz_051.adf / BuchDatei / Bücherdatei (.txt) < prev    next >
AmigaBASIC Source Code  |  1989-07-02  |  22KB  |  892 lines

  1. SCREEN 1,640,205,4,2
  2. WINDOW 1," Bücher Datei - Version 1.0 - © August 1989 by Eumelsoft - It's Public Domain",,0,1
  3. FOR i=0 TO 8:READ r,g,b:PALETTE i,r,g,b:NEXT
  4. DATA .5,.37,.23, 0,.1,.6, 0,0,0, 1,1,1, .4,.2,.13, .2,.2,.2, 1,.87,.73, .83,.1,0
  5. DATA .53,.53,.53
  6. GOSUB shareware
  7. GOSUB dateivorhanden
  8.  
  9. kastenmalen: 
  10.  CALL schatten (10,160,70,180)
  11.  CALL schatten (72,160,132,180)
  12.  CALL schatten (134,160,194,180)
  13.  CALL schatten (196,160,256,180)
  14.  CALL schatten (258,160,318,180)
  15.  CALL schatten (320,160,380,180)
  16.  CALL schatten (382,160,442,180)
  17.  CALL schatten (444,160,504,180)
  18.  CALL schatten (506,160,566,180)
  19.  CALL schatten (568,160,628,180)
  20. symbolemalen:
  21.  LINE (15,168)-(15,178):LINE -(55,173):LINE -(15,168)
  22.  LINE (55,168)-(53,178),,bf
  23.  LINE (77,168)-(77,178):LINE -(112,173):LINE -(77,168) 
  24.  LINE (139,168)-(139,178):LINE -(161,173):LINE -(139,168)
  25.  LINE (161,168)-(161,178):LINE -(186,173):LINE -(161,168)
  26.  LINE (196,173)-(221,168):LINE -(221,178):LINE -(196,173)
  27.  LINE (221,173)-(246,168):LINE -(246,178):LINE -(221,173)
  28.  LINE (260,173)-(305,168):LINE -(305,178):LINE -(260,173)
  29.  LINE (320,168)-(335,168):LINE (320,171)-(325,171)
  30.  LINE (320,173)-(332,173):LINE (320,176)-(326,176)
  31.  LINE (320,178)-(331,178) 
  32.  LINE (355,168)-(360,168)
  33.  LINE -(360,171):LINE -(365,171):LINE -(365,174)
  34.  LINE -(360,174):LINE -(360,177):LINE -(355,177)
  35.  LINE -(355,174):LINE -(350,174):LINE -(350,171)
  36.  LINE -(355,171):LINE -(355,168)
  37.  LINE (385,168)-(433,168):LINE (387,170)-(430,170)
  38.  LINE (385,172)-(420,172):LINE (385,174)-(412,174)
  39.  LINE (385,176)-(393,176):LINE (389,178)-(430,178)
  40.  CALL pixlocate (400,178):PRINT "??" 
  41.  LINE (444,168)-(460,168):LINE (444,172)-(455,172)
  42.  LINE (444,175)-(454,175)
  43.  LINE (440,168)-(456,178):LINE (440,176)-(455,168)
  44.  LINE (475,168)-(490,168):LINE (475,171)-(487,171)
  45.  LINE (475,173)-(476,173):LINE (477,173)-(489,173)
  46.  LINE (506,168)-(556,180),,b:LINE (512,168)-(512,180)
  47.  LINE (550,168)-(550,180):LINE (515,170)-(545,170)
  48.  LINE (515,172)-(540,172):LINE (517,174)-(545,174)
  49.  LINE (515,176)-(525,176):PSET (509,170):PSET (553,170)
  50.  PSET (509,173):PSET (553,173)
  51.  PSET (509,176):PSET (553,176) 
  52.  LINE (573,168)-(568,168):LINE -(568,178):LINE -(573,178)
  53.  LINE (568,173)-(573,173):LINE (576,178)-(576,168)
  54.  LINE -(581,178):LINE -(581,168):LINE (585,168)-(585,178)
  55.  LINE -(590,175):LINE -(590,171):LINE -(585,168)
  56.  LINE (599,168)-(594,168):LINE -(594,178):LINE -(599,178)
  57.  LINE (594,173)-(599,173):LINE (606,168)-(612,168)
  58.  LINE -(609,174):LINE -(606,168):LINE (607,176)-(610,178),,bf
  59. RETURN  
  60.  
  61. dateivorhanden:
  62.  CALL fenster(150,50,490,100,"Datei vorhanden?"+SPACE$(45))
  63.  CALL kasten (22,25,60,45,1):CALL kasten (260,25,318,45,1) 
  64.  COLOR 4:LOCATE 2,3
  65.  PRINT "Existiert bereits eine Datei?"
  66.  COLOR 7,1:LOCATE 5,5:PRINT "Ja":LOCATE 5,35:PRINT"Nein"
  67.  dummi=MOUSE(0)
  68. 100 WHILE MOUSE(0)=0:WEND 
  69.  x=MOUSE(3):y=MOUSE(4)
  70.  IF x>22 AND x<60 AND y>25 AND y<45 THEN WINDOW CLOSE 2:GOTO dateiladen
  71.  IF x>260 AND x<318 AND y>25 AND y<45 THEN WINDOW CLOSE 2:GOTO dateianlegen
  72. GOTO 100
  73.  
  74. dateiladen:
  75.  CALL fenster(130,50,510,100,"Datei laden"+SPACE$(60))
  76.  maske 2,3,"Pfad:",1,25
  77.  maske 4,3,"Dateiname:",1,20
  78.  LOCATE 2,9:CALL lineedit (lauf$,25,0)
  79.  LOCATE 4,14:CALL lineedit (dateiname$,20,0)
  80.  WINDOW CLOSE 2
  81. GOTO dateiladenstart
  82.  
  83. dateianlegen:
  84.  CALL fenster(130,50,510,100,"Datei anlegen"+SPACE$(60))
  85.  maske 2,3,"Pfad:",1,25
  86.  maske 4,3,"Dateiname:",1,20
  87.  LOCATE 2,9:CALL lineedit (lauf$,25,0)
  88.  LOCATE 4,14:CALL lineedit (dateiname$,20,0)
  89. GOTO einstellung
  90.  
  91. einstellung:
  92.  CALL fenster(50,30,590,170,"Parameter einstellen"+SPACE$(100))
  93.  autor%=25:verlag%=20:titel%=35:bestell%=10:preis%=5:bemerkung%=30:art%=15
  94.  maske 3,3,"Autor:",1,autor%
  95.  maske 5,3,"Titel:",1,titel%
  96.  maske 7,3,"Verlag:",1,verlag%
  97.  maske 9,3,"Art:",1,art%
  98.  maske 12,3,"Best.-Nr.:",1,bestell%
  99.  maske 14,3,"Preis:",1,preis%
  100.  maske 16,3,"Bemerkung:",1,bemerkung%
  101.  CALL kasten (500,10,530,130,1)
  102.  FOR i%=13 TO 74 STEP 16 
  103.  CALL kasten (453,i%,480,i%+13,1)
  104.  CALL kasten (423,i%,450,i%+13,1)
  105.  NEXT
  106.  FOR i%=85 TO 130 STEP 16 
  107.  CALL kasten (453,i%,480,i%+13,1)
  108.  CALL kasten (423,i%,450,i%+13,1)
  109.  NEXT 
  110.  COLOR 7,1
  111.  FOR i=1 TO 14:READ b$
  112.  LOCATE 1+i+1,65:PRINT b$
  113.  NEXT
  114.  DATA A,L,L,E,S," ",K,L,A,R," ",M,A,N
  115.  FOR i=3 TO 9 STEP 2
  116.  LOCATE i,59:PRINT"+":LOCATE i,55:PRINT"-"
  117.  NEXT 
  118.  FOR i=12 TO 16 STEP 2
  119.  LOCATE i,55:PRINT"-":LOCATE i,59:PRINT"+"
  120.  NEXT 
  121.  dummi=MOUSE(0):MOUSE ON
  122. 300 WHILE MOUSE(0)=0:WEND
  123.  x=MOUSE(3):y=MOUSE(4)
  124.  IF x>500 AND x<530 AND y>10 AND y<130 THEN WINDOW CLOSE 2:GOTO eingabe   
  125.  IF x>453 AND x<480 AND y>13 AND y<26 THEN GOSUB autorplus
  126.  IF x>423 AND x<450 AND y>13 AND y<26 THEN GOSUB autorminus
  127.  IF x>453 AND x<480 AND y>29 AND y<42 THEN GOSUB titelplus
  128.  IF x>423 AND x<450 AND y>29 AND y<42 THEN GOSUB titelminus
  129.  IF x>453 AND x<480 AND y>45 AND y<53 THEN GOSUB verlagplus
  130.  IF x>423 AND x<450 AND y>45 AND y<53 THEN GOSUB verlagminus
  131.  IF x>423 AND x<450 AND y>56 AND y<69 THEN GOSUB artminus
  132.  IF x>453 AND x<480 AND y>56 AND y<69 THEN GOSUB artplus
  133.  IF x>423 AND x<450 AND y>85 AND y<98 THEN GOSUB bestellminus
  134.  IF x>453 AND x<480 AND y>85 AND y<98 THEN GOSUB bestellplus
  135.  IF x>423 AND x<450 AND y>101 AND y<114 THEN GOSUB preisminus
  136.  IF x>453 AND x<480 AND y>101 AND y<114 THEN GOSUB preisplus
  137.  IF x>423 AND x<450 AND y>117 AND y<130 THEN GOSUB bemerkungminus
  138.  IF x>453 AND x<480 AND y>117 AND y<130 THEN GOSUB bemerkungplus
  139. GOTO 300 
  140.   
  141. bemerkungplus:
  142.  bemerkung%=bemerkung%+1
  143.  IF bemerkung%>36 THEN bemerkung%=36
  144.  LINE (110,117)-(400,130),0,bf
  145.  maske 16,3,"Bemerkung:",1,bemerkung%
  146.  SLEEP:SLEEP
  147. RETURN
  148.  
  149. bemerkungminus:
  150.  bemerkung%=bemerkung%-1
  151.  IF bemerkung%<1 THEN bemerkung%=1
  152.  LINE (110,117)-(400,130),0,bf
  153.  maske 16,3,"Bemerkung:",1,bemerkung%
  154.  SLEEP:SLEEP
  155. RETURN
  156.  
  157. preisplus:
  158.  preis%=preis%+1
  159.  IF preis%>10 THEN preis%=10
  160.  LINE (65,101)-(400,114),0,bf
  161.  maske 14,3,"Preis:",1,preis%
  162.  SLEEP:SLEEP
  163. RETURN
  164.  
  165. preisminus:
  166.  preis%=preis%-1
  167.  IF preis%<1 THEN preis%=1
  168.  LINE (65,101)-(400,114),0,bf
  169.  maske 14,3,"Preis:",1,preis%
  170.  SLEEP:SLEEP
  171. RETURN
  172.  
  173. bestellminus:
  174.  bestell%=bestell%-1
  175.  IF bestell%<1 THEN bestell%=1
  176.  LINE (100,85)-(400,96),0,bf
  177.  maske 12,3,"Best.-Nr.:",1,bestell%
  178.  SLEEP:SLEEP
  179. RETURN
  180.  
  181. bestellplus:
  182.  bestell%=bestell%+1
  183.  IF bestell%>30 THEN bestell%=30
  184.  LINE (100,85)-(400,96),0,bf
  185.  maske 12,3,"Best.-Nr.:",1,bestell%
  186.  SLEEP:SLEEP
  187. RETURN
  188.  
  189. autorplus:
  190.  autor%=autor%+1
  191.  IF autor%>39 THEN autor%=39
  192.  LINE (65,15)-(400,30),0,bf 
  193.  maske 3,3,"Autor:",1,autor%
  194.  SLEEP:SLEEP
  195. RETURN 
  196.  
  197. autorminus:
  198.  autor%=autor%-1
  199.  IF autor%<1 THEN autor%=1
  200.  LINE (65,15)-(400,30),0,bf
  201.  maske 3,3,"Autor:",1,autor%
  202.  SLEEP:SLEEP
  203. RETURN
  204.  
  205. titelplus:
  206.  titel%=titel%+1
  207.  IF titel%>39 THEN titel%=39
  208.  LINE (65,28)-(400,43),0,bf
  209.  maske 5,3,"Titel:",1,titel%
  210.  SLEEP:SLEEP
  211. RETURN
  212.  
  213. titelminus:
  214.  titel%=titel%-1
  215.  IF titel%<1 THEN titel%=1
  216.  LINE (65,28)-(400,43),0,bf
  217.  maske 5,3,"Titel:",1,titel%
  218.  SLEEP:SLEEP
  219. RETURN
  220.  
  221. verlagminus:
  222.  verlag%=verlag%-1
  223.  IF verlag%<1 THEN verlag%=1
  224.  LINE (70,47)-(400,55),0,bf
  225.  maske 7,3,"Verlag:",1,verlag% 
  226.  SLEEP:SLEEP
  227. RETURN
  228.  
  229. verlagplus:
  230.  verlag%=verlag%+1
  231.  IF verlag%>38 THEN verlag%=38
  232.  LINE (70,47)-(400,55),0,bf
  233.  maske 7,3,"Verlag:",1,verlag% 
  234.  SLEEP:SLEEP
  235. RETURN
  236.  
  237. artminus:
  238.  art%=art%-1
  239.  IF art%<1 THEN art%=1
  240.  LINE (60,60)-(400,73),0,bf
  241.  maske 9,3,"Art:",1,art%
  242.  SLEEP:SLEEP
  243. RETURN
  244.  
  245. artplus:
  246.  art%=art%+1
  247.  IF art%>38 THEN art%=38
  248.  LINE (60,60)-(400,73),0,bf
  249.  maske 9,3,"Art:",1,art%
  250.  SLEEP:SLEEP
  251. RETURN
  252.  
  253. eingabe:
  254.  anfang%=1:ende%=1
  255.  datei$=lauf$+dateiname$
  256.  OPEN "R",#1,datei$,280
  257.  FIELD #1,40 AS aut$,40 AS tit$,40 AS ver$,40 AS ar$,40 AS bes$,40 AS pre$,40 AS bem$
  258.  
  259. eingabestart:
  260.  COLOR 7,0:LOCATE 5,3:PRINT "Nummer: ";ende%
  261.  maske 7,3,"Autor:",1,autor%
  262.  maske 9,3,"Titel:",1,titel%
  263.  maske 11,3,"Verlag:",1,verlag%
  264.  maske 13,3,"Art:",1,art%
  265.  maske 15,3,"Best.-Nr.:",1,bestell%
  266.  maske 17,3,"Preis:",1,preis%
  267.  maske 19,3,"Bemerkung:",1,bemerkung%
  268.  LOCATE 7,10:CALL lineedit (autor$,autor%,0)
  269.  IF autor$="" THEN eingabeverlassen
  270.  LOCATE 9,10:CALL lineedit (titel$,titel%,0)
  271.  LOCATE 11,11:CALL lineedit (verlag$,verlag%,0)
  272.  LOCATE 13,8:CALL lineedit (art$,art%,0)
  273.  LOCATE 15,14:CALL lineedit (bestell$,bestell%,0)
  274.  LOCATE 17,10:CALL lineedit (preis$,preis%,0)
  275.  LOCATE 19,14:CALL lineedit (bemerkung$,bemerkung%,0)
  276.  LSET aut$=autor$
  277.  LSET tit$=titel$
  278.  LSET ver$=verlag$
  279.  LSET ar$=art$
  280.  LSET bes$=bestell$
  281.  LSET pre$=preis$
  282.  LSET bem$=bemerkung$
  283.  PUT #1,ende%
  284.  ende%=ende%+1
  285.  autor$="":titel$="":verlag$="":art$="":bestell$=""
  286.  preis$="":bemerkung$=""
  287. GOTO eingabestart
  288.  
  289. eingabeverlassen:
  290.  ende%=ende%-1
  291.  CLOSE #1
  292.  daten$=datei$+".sqr"  
  293.  OPEN daten$ FOR OUTPUT AS#2
  294.  WRITE #2,ende%,autor%,titel%,art%,bestell%,preis%,bemerkung%,verlag%
  295. CLOSE #2
  296.  
  297. dateiladenstart:
  298.  COLOR 1,0:CLS
  299.  anfang%=1 
  300.  datei$=lauf$+dateiname$
  301.  OPEN "R",#1,datei$,280
  302.  FIELD #1,40 AS aut$,40 AS tit$,40 AS ver$,40 AS ar$,40 AS bes$,40 AS pre$,40 AS bem$
  303.  daten$=datei$+".sqr"
  304.  OPEN "I",#2,daten$
  305.  WHILE NOT EOF (2)
  306.  INPUT #2,ende%,autor%,titel%,art%,bestell%,preis%,bemerkung%,verlag%
  307.  WEND
  308.  CLOSE #2
  309. GOSUB kastenmalen
  310.  
  311. dateizeigen:
  312.  GET #1,anfang%
  313.  COLOR 7,0:LOCATE 2,3:PRINT "Nummer: ";anfang%
  314.  COLOR 1,0:LOCATE 5,3:PRINT"Autor: "
  315.  LOCATE 7,3:PRINT "Titel: "
  316.  LOCATE 9,3:PRINT "Verlag: ":LOCATE 11,3:PRINT "Art: "
  317.  LOCATE 13,3:PRINT "Best.-Nr.:":LOCATE 15,3:PRINT"Preis: "
  318.  LOCATE 17,3:PRINT "Bemerkung: "
  319.  COLOR 6,0
  320.  LOCATE 5,14:PRINT aut$
  321.  LOCATE 7,14:PRINT tit$
  322.  LOCATE 9,14:PRINT ver$
  323.  LOCATE 11,14:PRINT ar$
  324.  LOCATE 13,14:PRINT bes$
  325.  LOCATE 15,14:PRINT pre$
  326.  LOCATE 17,14:PRINT bem$
  327.  dummi=MOUSE(0):MOUSE ON
  328. 400 WHILE MOUSE(0)=0:WEND
  329.  x=MOUSE(3):y=MOUSE(4)
  330.  IF x>315 AND x<375 AND y>168 AND y<178 THEN ende%=ende%+1:anfang%=ende%:GOTO dateiaendernstart 
  331.  IF x>439 AND x<499 AND y>168 AND y<178 THEN dateiaendernstart
  332.  IF x>191 AND x<251 AND y>168 AND y<178 THEN minusfuenf 
  333.  IF x>253 AND x<313 AND y>168 AND y<178 THEN minusein 
  334.  IF x>67 AND x<127 AND y>168 AND y<178 THEN plusein
  335.  IF x>129 AND x<189 AND y>168 AND y<178 THEN plusfuenf  
  336.  IF x>5 AND x<65 AND y>168 AND y<178 THEN anfang 
  337.  IF x>377 AND x<435 AND y>168 AND y<178 THEN dateisuchen
  338.  IF x>501 AND x<561 AND y>168 AND y<178 THEN dateidrucken
  339.  IF x>563 AND x<623 AND y>168 AND y<178 THEN ende
  340. GOTO 400 
  341.  
  342. anfang:
  343.  IF anfang%<=1 THEN anfang%=ende%
  344.  IF anfang%>1 THEN anfang%=1
  345. GOTO dateizeigen
  346.  
  347. plusein:
  348.  anfang%=anfang%+1
  349.  IF anfang%>ende% THEN GOSUB message:anfang%=ende%
  350. GOTO dateizeigen 
  351.  
  352. minusein:
  353.  anfang%=anfang%-1
  354.  IF anfang%<=0 THEN GOSUB message2:anfang%=1
  355. GOTO dateizeigen
  356.  
  357. plusfuenf:
  358.  anfang%=anfang%+5
  359.  IF anfang%>ende% THEN GOSUB message:anfang%=ende%
  360. GOTO dateizeigen
  361.  
  362. minusfuenf:
  363.  anfang%=anfang%-5
  364.  IF anfang%<=0 THEN GOSUB message2:anfang%=1
  365. GOTO dateizeigen
  366.  
  367. message:
  368.  CALL fenster (400,90,600,120,"Systemmitteilung"+SPACE$(50))
  369.  COLOR 8:LOCATE 2,3:PRINT "Dateiende erreicht !"
  370.  BEEP:SLEEP:SLEEP
  371. SLEEP:SLEEP:WINDOW CLOSE 2:RETURN
  372.  
  373. message2:
  374.  CALL fenster (400,90,600,120,"Systemmitteilung"+SPACE$(50))
  375.  COLOR 8:LOCATE 2,3:PRINT "Dateianfang erreicht !"
  376.  BEEP:SLEEP:SLEEP
  377. SLEEP:SLEEP:WINDOW CLOSE 2:RETURN
  378.  
  379. dateiaendernstart:
  380.  autor$="":titel$="":verlag$=""
  381.  art$="":bestell$="":preis$=""
  382.  bemerkung$="" 
  383.  LINE (5,5)-(640,160),0,bf
  384.  COLOR 7,0:LOCATE 2,3:PRINT "Nummer: ";anfang%
  385.  maske 5,3,"Autor:",1,autor%
  386.  maske 7,3,"Titel:",1,titel%
  387.  maske 9,3,"Verlag:",1,verlag%
  388.  maske 11,3,"Art:",1,art%
  389.  maske 13,3,"Best.-Nr.:",1,bestell%
  390.  maske 15,3,"Preis:",1,preis%
  391.  maske 17,3,"Bemerkung:",1,bemerkung%
  392.  LOCATE 5,10:CALL lineedit (autor$,autor%,0)
  393.  IF autor$="" THEN eingabeverlassen
  394.  LOCATE 7,10:CALL lineedit (titel$,titel%,0)
  395.  LOCATE 9,11:CALL lineedit (verlag$,verlag%,0)
  396.  LOCATE 11,8:CALL lineedit (art$,art%,0)
  397.  LOCATE 13,14:CALL lineedit (bestell$,bestell%,0)
  398.  LOCATE 15,10:CALL lineedit (preis$,preis%,0)
  399.  LOCATE 17,14:CALL lineedit (bemerkung$,bemerkung%,0)
  400.  LSET aut$=autor$
  401.  LSET tit$=titel$
  402.  LSET ver$=verlag$
  403.  LSET ar$=art$
  404.  LSET bes$=bestell$
  405.  LSET pre$=preis$
  406.  LSET bem$=bemerkung$
  407.  PUT #1,anfang%
  408.  LINE (5,5)-(630,160),0,bf
  409.  daten$=datei$+".sqr"  
  410.  OPEN daten$ FOR OUTPUT AS#2
  411.  WRITE #2,ende%,autor%,titel%,art%,bestell%,preis%,bemerkung%,verlag%
  412.  CLOSE #2
  413. GOTO dateizeigen
  414.  
  415. dateidrucken:
  416.  CALL fenster(100,30,530,140,"Daten drucken"+SPACE$(50))
  417.  CALL kasten (235,80,315,104,1)
  418.  CALL kasten (340,80,420,104,1)
  419.  schriftart=1:druckanfang%=1:druckende%=ende%:druck=1
  420.  COLOR 5,0:POKE WINDOW (8)+56,3
  421.  LOCATE 2,3:PRINT "Menge:"
  422.  COLOR 1,0:POKE WINDOW (8)+56,0
  423.  LOCATE 4,3:PRINT "Alles:"  
  424.  maske 4,20,"von:",1,4
  425.  maske 4,30,"bis:",1,4 : COLOR 1,0
  426.  COLOR 5,0:POKE WINDOW (8)+56,3
  427.  LOCATE 6,3:PRINT "Ausgabe:"
  428.  COLOR 1,0:POKE WINDOW (8)+56,0
  429.  LOCATE 8,3:PRINT "Einzel:":LOCATE 8,20:PRINT"Liste:":LOCATE 8,40:PRINT"Kartei:"
  430.  COLOR 5,0:POKE WINDOW (8)+56,3
  431.  LOCATE 10,3:PRINT "Qualität"
  432.  COLOR 1,0:POKE WINDOW (8)+56,0
  433.  LOCATE 12,3:PRINT "Draft:":LOCATE 12,20:PRINT "Nlq:"
  434.  COLOR 7,1:LOCATE 12,32:PRINT "Drucken"
  435.  LOCATE 12,45:PRINT "Abbruch":COLOR 1,0
  436.  LINE (70,23)-(90,33),4,b
  437.  LINE (75,54)-(95,64),4,b
  438.  LINE (205,54)-(225,64),4,b:LINE (370,54)-(390,64),4,b
  439.  LINE (70,87)-(90,97),4,b:LINE (188,87)-(208,97),4,b
  440.  LINE (72,25)-(88,31),3,bf:LINE (77,56)-(93,62),3,bf
  441.  LINE (72,89)-(88,95),3,bf
  442.  dummi=MOUSE(0)
  443. 999 WHILE MOUSE(0)=0:WEND 
  444.  x=MOUSE(3):y=MOUSE(4)
  445.  IF x>193 AND x<223 AND y>23 AND y<33 THEN GOSUB auswahllaenge
  446.  IF x>70 AND x<90 AND y>23 AND y<33 THEN GOSUB alles 
  447.  IF x>75 AND x<95 AND y>54 AND y<64 THEN GOSUB einzel 
  448.  IF x>205 AND x<225 AND y>54 AND y<64 THEN GOSUB liste
  449.  IF x>370 AND x<390 AND y>54 AND y<64 THEN GOSUB kartei
  450.  IF x>70 AND x<90 AND y>87 AND y<97 THEN GOSUB draft
  451.  IF x>188 AND x<208 AND y>87 AND y<97 THEN GOSUB nlq
  452.  IF x>235 AND x<315 AND y>80 AND y<104 THEN drucken 
  453.  IF x>340 AND x<420 AND y>80 AND y<104 THEN WINDOW CLOSE 2:GOTO dateizeigen
  454. GOTO 999
  455.  
  456. auswahllaenge:
  457.  druckanfang%=0:druckende%=0
  458.  LINE (72,25)-(88,31),0,bf
  459.  COLOR 3,4
  460.  LOCATE 4,25:INPUT "",druckanfang% 
  461.  LOCATE 4,35:INPUT "",druckende%
  462.  COLOR 1,0
  463.  IF druckanfang%<1 OR druckanfang%>ende% OR druckanfang%>druckende% THEN auswahllaenge
  464.  IF druckende%<druckanfang% OR druckende%>ende% OR druckende%<anfang% THEN auswahllaenge
  465. RETURN
  466.  
  467. alles:
  468.  LINE (72,25)-(88,31),3,bf
  469.  druckanfang%=1:druckende%=ende%
  470.  maske 4,20,"von:",1,4
  471.  maske 4,30,"bis:",1,4 : COLOR 1,0
  472. RETURN
  473.  
  474. einzel: 
  475.  LINE (77,56)-(93,62),3,bf:LINE (207,56)-(223,62),0,bf
  476.  LINE (372,56)-(388,62),0,bf:druck=1:RETURN
  477.  
  478. liste:
  479.  LINE (77,56)-(93,62),0,bf:LINE (207,56)-(223,62),3,bf
  480.  LINE (372,56)-(388,62),0,bf:druck=2:RETURN
  481.  
  482. kartei: 
  483.  LINE (77,56)-(93,62),0,bf:LINE (207,56)-(223,62),0,bf
  484.  LINE (372,56)-(388,62),3,bf:druck=3:RETURN
  485.  
  486. draft:
  487.  LINE (72,89)-(88,95),3,bf:LINE (190,89)-(206,95),0,bf
  488.  schriftart=1
  489. RETURN
  490.  
  491. nlq:
  492.  LINE (72,89)-(88,95),0,bf:LINE (190,89)-(206,95),3,bf
  493.  schriftart=2
  494. RETURN
  495.  
  496. drucken:
  497.  OPEN "par:" FOR OUTPUT AS #4
  498.  IF schriftart=1 THEN PRINT #4,CHR$(27);"P";
  499.  IF schrittart=2 THEN PRINT #4,CHR$(27);"x"+CHR$(1)
  500.  IF druck=1 THEN einzeldruck
  501.  IF druck=2 THEN listendruck
  502.  IF druck=3 THEN karteidruck
  503. END
  504.  
  505. einzeldruck:
  506. FOR a=druckanfang% TO druckende%
  507.  GET #1,a
  508.  PRINT #4,CHR$(27);"E";
  509.  PRINT #4,aut$
  510.  PRINT #4,CHR$(27);"F";:PRINT #4,CHR$(27);"4";
  511.  PRINT #4,tit$
  512.  PRINT #4,CHR$(27);"5";:PRINT #4,"";
  513.  PRINT #4,ver$
  514.  PRINT #4,ar$
  515.  PRINT #4,bes$
  516.  PRINT #4,pre$
  517.  PRINT #4,bem$
  518.  PRINT #4,""
  519. NEXT a
  520. CLOSE #4:WINDOW CLOSE 2:GOTO dateizeigen
  521.  
  522. listendruck:          
  523. FOR a=druckanfang% TO druckende%
  524.  GET #1,a
  525.  PRINT #4,CHR$(27);"E";
  526.  PRINT #4,aut$;CHR$(27);"F";CHR$(27);"4";tit$;
  527.  PRINT #4,CHR$(27);"5";  
  528.  PRINT #4,ver$; 
  529.  PRINT #4,ar$; 
  530.  PRINT #4,bes$; 
  531.  PRINT #4,pre$; 
  532.  PRINT #4,bem$
  533.  PRINT #4,""
  534. NEXT a
  535. CLOSE #4:WINDOW CLOSE 2:GOTO dateizeigen
  536.  
  537. karteidruck:
  538. FOR a=druckanfang% TO druckende%
  539.  GET #1,a
  540.  PRINT #4,CHR$(27);"E";
  541.  PRINT #4,aut$;CHR$(27);"F"
  542.  PRINT #4,CHR$(27);"4";tit$
  543.  PRINT #4,CHR$(27);"5";:PRINT #4,""
  544.  PRINT #4,ver$
  545.  PRINT #4,ar$
  546.  PRINT #4,bes$
  547.  PRINT #4,pre$
  548.  PRINT #4,bem$
  549.  PRINT #4,"":PRINT #4,""
  550. NEXT a
  551. CLOSE #4:WINDOW CLOSE 2:GOTO dateizeigen
  552.  
  553. ende:
  554.  CALL fenster(150,50,490,100,"Programm verlassen"+SPACE$(45))
  555.  CALL kasten (22,25,60,45,1):CALL kasten (260,25,318,45,1) 
  556.  COLOR 4:LOCATE 2,3
  557.  PRINT "Programm wirklich beenden ?"
  558.  COLOR 7,1:LOCATE 5,5:PRINT "Ja":LOCATE 5,35:PRINT"Nein"
  559.  dummi=MOUSE(0)
  560. 105 WHILE MOUSE(0)=0:WEND 
  561.  x=MOUSE(3):y=MOUSE(4)
  562.  IF x>22 AND x<60 AND y>25 AND y<45 THEN SYSTEM 
  563.  IF x>260 AND x<318 AND y>25 AND y<45 THEN WINDOW CLOSE 2:GOTO dateiweiter 
  564. GOTO 105
  565.  
  566. dateiweiter:
  567.  CALL fenster(150,50,490,100,"Neue Datei laden ?"+SPACE$(45))
  568.  CALL kasten (22,25,60,45,1):CALL kasten (260,25,318,45,1) 
  569.  COLOR 4:LOCATE 2,3
  570.  PRINT "Soll eine neue Datei geladen werden ?"
  571.  COLOR 7,1:LOCATE 5,5:PRINT "Ja":LOCATE 5,35:PRINT"Nein"
  572.  SLEEP:SLEEP
  573.  dummi=MOUSE(0)
  574. 1000 WHILE MOUSE(0)=0:WEND 
  575.  x=MOUSE(3):y=MOUSE(4)
  576.  IF x>22 AND x<60 AND y>25 AND y<45 THEN WINDOW CLOSE 2:GOTO weiter
  577.  IF x>260 AND x<318 AND y>25 AND y<45 THEN WINDOW CLOSE 2:GOTO dateizeigen 
  578. GOTO 1000
  579.  
  580. weiter:
  581.  CLOSE #1:CLOSE #2:CLOSE #3:CLOSE #4
  582. GOTO dateiladen
  583.  
  584. dateisuchen:
  585.  CALL fenster (125,20,515,150,"Datei Suchen "+SPACE$(50))
  586.  CALL kasten (320,105,380,125,1)
  587.  CALL kasten (225,105,300,125,1)
  588.  COLOR 7,1
  589.  LOCATE 15,30:PRINT "Abbruch"
  590.  LOCATE 15,42:PRINT "Weiter"
  591.  COLOR 4,0:LOCATE 2,3
  592.  PRINT "Wonach soll denn gesucht werden ?":COLOR 6
  593.  LOCATE 4,3:PRINT "Autor :"
  594.  LOCATE 6,3:PRINT "Titel :"
  595.  LOCATE 8,3:PRINT "Verlag:"
  596.  LOCATE 10,3:PRINT "Art   :"
  597.  LOCATE 12,3:PRINT "Best.-Nr.:"
  598.  LINE (120,22)-(140,32),1,b:LINE (120,37)-(140,47),1,b
  599.  LINE (120,52)-(140,62),1,b:LINE (120,67)-(140,77),1,b
  600.  LINE (120,82)-(140,92),1,b:LINE (122,24)-(138,30),3,bf
  601.  zahl=1
  602.  dummi=MOUSE(0):MOUSE ON
  603. 1200 WHILE MOUSE(0)=0:WEND
  604.  x=MOUSE(3):y=MOUSE(4)
  605.  IF x>320 AND x<380 AND y>105 AND y<125 THEN dateisuchenstart  
  606.  IF x>225 AND x<300 AND y>105 AND y<125 THEN WINDOW CLOSE 2:GOTO dateizeigen
  607.  IF x>120 AND x<140 AND y>22 AND y<32 THEN GOSUB autoranzeige
  608.  IF x>120 AND x<140 AND y>37 AND y<47 THEN GOSUB titelanzeige
  609.  IF x>120 AND x<140 AND y>52 AND y<62 THEN GOSUB verlaganzeige
  610.  IF x>120 AND x<140 AND y>67 AND y<77 THEN GOSUB artanzeige
  611.  IF x>120 AND x<140 AND y>82 AND y<92 THEN GOSUB nranzeige
  612. GOTO 1200 
  613.  
  614. autoranzeige:
  615.  LINE (122,24)-(138,30),3,bf
  616.  zahl=1
  617.  LINE (122,39)-(138,45),0,bf
  618.  LINE (122,54)-(138,60),0,bf
  619.  LINE (122,69)-(138,75),0,bf
  620.  LINE (122,84)-(138,90),0,bf
  621. RETURN
  622.    
  623. titelanzeige:
  624.  LINE (122,24)-(138,30),0,bf
  625.  zahl=2
  626.  LINE (122,39)-(138,45),3,bf
  627.  LINE (122,54)-(138,60),0,bf
  628.  LINE (122,69)-(138,75),0,bf
  629.  LINE (122,84)-(138,90),0,bf
  630. RETURN
  631.  
  632. verlaganzeige:
  633.  LINE (122,24)-(138,30),0,bf
  634.  zahl=3
  635.  LINE (122,39)-(138,45),0,bf
  636.  LINE (122,54)-(138,60),3,bf
  637.  LINE (122,69)-(138,75),0,bf
  638.  LINE (122,84)-(138,90),0,bf
  639. RETURN
  640.  
  641. artanzeige:
  642.  LINE (122,24)-(138,30),0,bf
  643.  zahl=4
  644.  LINE (122,39)-(138,45),0,bf
  645.  LINE (122,54)-(138,60),0,bf
  646.  LINE (122,69)-(138,75),3,bf
  647.  LINE (122,84)-(138,90),0,bf
  648. RETURN
  649.  
  650. nranzeige:
  651.  LINE (122,24)-(138,30),0,bf
  652.  zahl=5
  653.  LINE (122,39)-(138,45),0,bf
  654.  LINE (122,54)-(138,60),0,bf
  655.  LINE (122,69)-(138,75),0,bf
  656.  LINE (122,84)-(138,90),3,bf
  657. RETURN                               
  658.  
  659. dateisuchenstart:
  660. ON zahl GOTO autorsuchen,titelsuchen,verlagsuchen,artsuchen,nummersuchen
  661.  
  662. autorsuchen:
  663.  WINDOW CLOSE 2
  664.  autor$=""
  665.  CALL fenster(130,50,510,100,"Autor suchen"+SPACE$(60))
  666.  LOCATE 2,3:PRINT "Geben Sie den Namen des Autors ein:"
  667.  maske 4,3,"Name:",1,35
  668.  LOCATE 4,9:CALL lineedit (autor$,autor%,0)
  669.  sp%=LEN(autor$)
  670.  sk%=40-sp%
  671.  autor$=autor$+SPACE$(sk%)
  672.  FOR i%=anfang% TO ende%
  673.  GET #1,i%
  674.  IF aut$=autor$ THEN anfang%=i%:WINDOW CLOSE 2:GOTO dateizeigen
  675.  NEXT
  676.  LOCATE 4,9
  677.  PRINT "Nichts gefunden!"
  678.  CALL wartemaus
  679.  WINDOW CLOSE 2:GOTO dateizeigen
  680.  
  681. titelsuchen:
  682.  WINDOW CLOSE 2
  683.  CALL fenster(130,50,510,100,"Titel suchen"+SPACE$(60))
  684.  titel$=""
  685.  LOCATE 2,3:PRINT "Geben Sie den Titel des Buches ein:"
  686.  maske 4,3,"Titel:",1,35
  687.  LOCATE 4,10:CALL lineedit (titel$,titel%,0)
  688.  sp%=LEN(titel$)
  689.  sk%=40-sp%
  690.  titel$=titel$+SPACE$(sk%)
  691.  FOR i%=anfang% TO ende%
  692.  GET #1,i%
  693.  IF tit$=titel$ THEN anfang%=i%:WINDOW CLOSE 2:GOTO dateizeigen
  694.  NEXT
  695.  LOCATE 4,10
  696.  PRINT "Nichts gefunden!"
  697.  CALL wartemaus
  698.  WINDOW CLOSE 2:GOTO dateizeigen
  699.  
  700. verlagsuchen:
  701.  WINDOW CLOSE 2
  702.  CALL fenster(130,50,510,100,"Verlag suchen"+SPACE$(60))
  703.  verlag$=""
  704.  LOCATE 2,3:PRINT "Geben Sie den Verlag des Buches ein:"
  705.  maske 4,3,"Verlag:",1,35
  706.  LOCATE 4,11:CALL lineedit (verlag$,verlag%,0)
  707.  sp%=LEN(verlag$)
  708.  sk%=40-sp%
  709.  verlag$=verlag$+SPACE$(sk%)
  710.  FOR i%=anfang% TO ende%
  711.  GET #1,i%
  712.  IF ver$=verlag$ THEN anfang%=i%:WINDOW CLOSE 2:GOTO dateizeigen
  713.  NEXT
  714.  LOCATE 4,11
  715.  PRINT "Nichts gefunden!"
  716.  CALL wartemaus
  717.  WINDOW CLOSE 2:GOTO dateizeigen
  718.  
  719. artsuchen:
  720.  WINDOW CLOSE 2
  721.  CALL fenster(130,50,510,100,"Buchart suchen"+SPACE$(60))
  722.  art$=""
  723.  LOCATE 2,3:PRINT "Geben Sie die Art des Buches ein:"
  724.  maske 4,3,"Art:",1,35
  725.  LOCATE 4,8:CALL lineedit (art$,art%,0)
  726.  sp%=LEN(art$)
  727.  sk%=40-sp%
  728.  art$=art$+SPACE$(sk%)
  729.  FOR i%=anfang% TO ende%
  730.  GET #1,i%
  731.  IF ar$=art$ THEN anfang%=i%:WINDOW CLOSE 2:GOTO dateizeigen
  732.  NEXT
  733.  LOCATE 4,8
  734.  PRINT "Nichts gefunden!"
  735.  CALL wartemaus
  736.  WINDOW CLOSE 2:GOTO dateizeigen
  737.  
  738. nummersuchen:
  739.  WINDOW CLOSE 2
  740.  CALL fenster(130,50,510,100,"Bestellnummer suchen"+SPACE$(60))
  741.  bestell$=""
  742.  LOCATE 2,3:PRINT "Geben Sie die Bestellnummer des Buches ein:"
  743.  maske 4,3,"Best.-Nr.:",1,30
  744.  LOCATE 4,13:CALL lineedit (bestell$,bestell%,0)
  745.  sp%=LEN(bestell$)
  746.  sk%=40-sp%
  747.  bestell$=bestell$+SPACE$(sk%)
  748.  FOR i%=anfang% TO ende%
  749.  GET #1,i%
  750.  IF bes$=bestell$ THEN anfang%=i%:WINDOW CLOSE 2:GOTO dateizeigen
  751.  NEXT
  752.  LOCATE 4,13
  753.  PRINT "Nichts gefunden!"
  754.  CALL wartemaus
  755.  WINDOW CLOSE 2:GOTO dateizeigen
  756.  
  757.  
  758. shareware:
  759.  CALL fenster (80,20,560,150,"Autorenmittelung"+SPACE$(45))
  760.  CALL kasten (385,105,445,125,1)
  761.  COLOR 4:LOCATE 2,3
  762.  PRINT "Das Programm ist dazu da, um Ihre Unmengen von Büchern "
  763.  PRINT TAB(3)"zu Katalogisieren. Diese können Sie dann sortiern, laden,"
  764.  PRINT TAB(3)"speichern usw.":PRINT:COLOR 6
  765.  PRINT TAB(3)"Wenn Sie dieses Programm öfter benutzen, so senden Sie"
  766.  PRINT TAB(3)"bitte 10 - 15 DM an untenstehende Adresse."
  767.  PRINT TAB(3)"Die Version 2.0 ist in Arbeit, Sie können"
  768.  PRINT TAB(3)"diese dann über einen Public Domain Versand"
  769.  PRINT TAB(3)"beziehen. Das Programm stammt von:":PRINT:COLOR 5
  770.  PRINT TAB(7)"Martin Jochimczyk"
  771.  PRINT TAB(7)"Am Sande 12"
  772.  PRINT TAB(7)"2723 Scheeßel":COLOR 7,1
  773.  PRINT TAB(50)"Weiter"
  774.  dummi=MOUSE(0):MOUSE ON
  775. 200 WHILE MOUSE(0)=0:WEND
  776.  x=MOUSE(3):y=MOUSE(4)
  777.  IF x>385 AND x<445 AND y>105 AND y<125 THEN WINDOW CLOSE 2:RETURN 
  778. GOTO 200 
  779.  
  780. '=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  781.  
  782. SUB lineedit (text$,MaxNumChar%,DeleteIt%) STATIC
  783.  LineNum% = CSRLIN  :  FirstColumn% = POS(x)
  784.   text$ = LEFT$(text$,MaxNumChar%) + " "                'SPACE for insert
  785.   PRINT text$;
  786.   column%=FirstColumn%
  787.   GOSUB ShowCursor
  788.   done% = 0
  789.   WHILE NOT done%
  790.     k$ = INKEY$
  791.     IF k$=CHR$(30) THEN                                 'right arrow
  792.       IF column%<FirstColumn%+LEN(text$)-1 THEN
  793.         GOSUB NoCursor
  794.         column% = column% + 1
  795.         GOSUB ShowCursor
  796.       END IF  
  797.     ELSEIF k$=CHR$(31) THEN                             'left arrow
  798.       IF column%>FirstColumn% THEN
  799.         GOSUB NoCursor
  800.         column% = column% - 1
  801.         GOSUB ShowCursor
  802.       END IF  
  803.     ELSEIF k$=CHR$(28) THEN                             'up arrow
  804.       GOSUB NoCursor
  805.       column% = FirstColumn%
  806.       GOSUB ShowCursor
  807.     ELSEIF k$=CHR$(29) THEN                             'down arrow
  808.       GOSUB NoCursor
  809.       column% = FirstColumn% + LEN(text$) - 1
  810.       GOSUB ShowCursor
  811.     ELSEIF k$=CHR$(8) THEN                              'backspace
  812.       IF column%>FirstColumn% THEN
  813.         RightPart$ = RIGHT$(text$,LEN(text$)-(column%-FirstColumn%))
  814.         column% = column% - 1
  815.         text$ = LEFT$(text$,column%-FirstColumn%)+RightPart$
  816.         LOCATE LineNum%,column%
  817.         PRINT RightPart$ + " ";
  818.         GOSUB ShowCursor
  819.       END IF
  820.     ELSEIF k$=CHR$(127) THEN                            'delete
  821.       IF column%<FirstColumn%+LEN(text$)-1 THEN
  822.         RightPart$ = RIGHT$(text$,LEN(text$)-(column%-FirstColumn%)-1)
  823.         text$ = LEFT$(text$,column%-FirstColumn%) + RightPart$
  824.         LOCATE LineNum%,column%
  825.         PRINT RightPart$ + " ";
  826.         GOSUB ShowCursor
  827.       END IF  
  828.     ELSEIF k$=CHR$(13) THEN                             'return
  829.       GOSUB NoCursor
  830.       IF DeleteIt% THEN                                 'erase text
  831.         LOCATE LineNum%,FirstColumn%
  832.         PRINT SPACE$(LEN(text$));
  833.         LOCATE LineNum%,FirstColumn%
  834.       ELSE
  835.         LOCATE LineNum%,FirstColumn%+LEN(text$)-1  
  836.       END IF
  837.       text$ = LEFT$(text$,LEN(text$)-1)                 'strip off SPACE
  838.       done%=-1
  839.     ELSEIF k$<>"" AND LEN(text$)<=MaxNumChar% THEN      'insert character
  840.       GOSUB NoCursor
  841.       RightPart$ = k$ + RIGHT$(text$,LEN(text$)-(column%-FirstColumn%))
  842.       text$ = LEFT$(text$,column%-FirstColumn%) + RightPart$
  843.       LOCATE LineNum%,column%
  844.       PRINT RightPart$;
  845.       column% = column% + 1
  846.       GOSUB ShowCursor
  847.     END IF
  848.   WEND
  849.   EXIT SUB
  850. ShowCursor:
  851.   COLOR 0,3
  852.   LOCATE LineNum%,column%
  853.   PRINT MID$(text$,column%-(FirstColumn%-1),1);
  854.   COLOR 8,4
  855.   RETURN
  856. NoCursor:
  857.   LOCATE LineNum%,column%
  858.   PRINT MID$(text$,column%-(FirstColumn%-1),1);
  859.   RETURN
  860. END SUB
  861.  
  862. SUB kasten (x1%,y1%,x2%,y2%,farbe%) STATIC
  863.  LINE (x1%,y1%)-(x2%,y2%),farbe%,b
  864.  LINE (x1%+2,y1%+2)-(x2%-2,y2%-2),farbe%,bf
  865.  
  866. END SUB 
  867.  
  868. SUB fenster (x1%,y1%,x2%,y2%,text$) STATIC
  869.  WINDOW 2,text$,(x1%,y1%)-(x2%,y2%),18,1
  870.  LINE (0,0)-(x2%-x1%,y2%-y1%),1,b
  871. END SUB
  872.  
  873. SUB maske (y%,x%,a$,abst%,lae%) STATIC
  874.  LOCATE y%,x%:COLOR 1,0
  875.  PRINT a$;SPACE$(abst%);:COLOR 0,4:PRINT SPACE$(lae%)
  876. END SUB
  877.  
  878. SUB schatten (x1%,y1%,x2%,y2%) STATIC
  879.  LINE (x1%,y1%)-(x2%,y2%),2,bf
  880.  LINE (x1%-5,y1%+3)-(x2%-5,y2%+3),0,bf
  881.  LINE (x1%-5,y1%+3)-(x2%-5,y2%+3),4,b
  882. END SUB
  883.  
  884. SUB pixlocate (x%,y%) STATIC
  885.  xadr&=WINDOW (8)+36:yadr&=WINDOW (8)+38
  886.  POKEW xadr&,x%:POKEW yadr&,y%
  887. END SUB
  888.  
  889. SUB wartemaus STATIC
  890.  SLEEP:SLEEP:SLEEP:SLEEP
  891. END SUB  
  892.